#!/usr/bin/python
# coding=utf8
from qiniu import Auth, put_file, etag, urlsafe_base64_encode
from constant import datais
import qiniu.config


# 需要填写你的 Access Key 和 Secret Key
class UpLoad:
    __access_key = datais.access_key
    __secret_key = datais.secret_key
    __bucket_name = datais.bucket_name_img

    def __init__(self):
        self.__q = Auth(self.__access_key, self.__secret_key)

    '''
        #要上传的空间
        bucket_name = 'taihe'
        #上传到七牛后保存的文件名
        key = 'my-python-logo.png';
        #要上传文件的本地路径
        localfile = './sync/bbb.jpg'
    '''

    def put(self, key, localfile):
        # 生成上传 Token，可以指定过期时间等
        token = self.__q.upload_token(self.__bucket_name, key, 3600)
        # print token
        ret, info = put_file(token, key, localfile,check_crc=True)
        # print(info)
        assert ret['key'] == key
        assert ret['hash'] == etag(localfile)
        # print(ret)
        return ret


    '''
        #要上传的空间
        bucket_name = 'Bucket_Name'
        #上传到七牛后保存的文件名
        key = 'my-python-logo.png';
        #要上传文件的本地路径
        localfile = './sync/bbb.jpg'
    '''

    def put_policy(self, key, localfile):
        #上传文件到七牛后， 七牛将文件名和文件大小回调给业务服务器。
        policy={
         'callbackUrl':'http://your.domain.com/callback.php',
         'callbackBody':'filename=$(fname)&filesize=$(fsize)'
         }
        token = self.__q.upload_token(self.__bucket_name, key, 3600, policy)
        ret, info = put_file(token, key, localfile)
        # print(info)
        assert ret['key'] == key
        assert ret['hash'] == etag(localfile)
        return ret
